//暴力求解：罗马数字逆向求解
public class A {
    //数字转罗马数字（千位的数字）
    static String NumRoman(int x) {
        //2 4 9
        int a = x / 1000;//千位
        int b = x % 1000 /100;//百位
        int c = x % 100 / 10;//十位
        int d = x % 10;//个位

        String s = "";
        if(a==1)  s+="M";
        if(a==2)  s+="MM";
        if(a==3)  s+="MMM";

        if(b==1) s+="C";
        if(b==2) s+="CC";
        if(b==3) s+="CCC";
        if(b==4) s+="CD";
        if(b==5) s+="D";
        if(b==6) s+="DC";
        if(b==7) s+="DCC";
        if(b==8) s+="DCCC";
        if(b==9) s+="DM";

        if(c==1) s+="X";
        if(c==2) s+="XX";
        if(c==3) s+="XXX";
        if(c==4) s+="XL";
        if(c==5) s+="L";
        if(c==6) s+="LX";
        if(c==7) s+="LXX";
        if(c==8) s+="LXXX";
        if(c==9) s+="XC";

        if(d==1) s+="I";
        if(d==2) s+="II";
        if(d==3) s+="III";
        if(d==4) s+="IV";
        if(d==5) s+="V";
        if(d==6) s+="VI";
        if(d==7) s+="VII";
        if(d==8) s+="VIII";
        if(d==9) s+="IX";

        return s;
    }
    //判断罗马数字写的是否正确(一个一个遍历，看看有没有匹配上的)
    static boolean RomanNumOK(String s) {
        for (int i = 0; i < 4000; i++) {
            if(s.equals(NumRoman(i)))//引用类型要用equals
                return true;
        }
        return false;
    }
    public static void main(String[] args) {
        System.out.println(RomanNumOK("CCXLIX"));
        //System.out.println(NumRoman(3209));
    }
}
